package com.probox.common.entity.service.platfom;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.common.entity.domain.platfom.PlatformPageConfigData;
import com.probox.common.entity.domain.platfom.vo.UseTypeVo;
import com.probox.common.entity.domain.platfom.vo.api.PlatformComponentDataVo;
import com.probox.common.entity.domain.platfom.vo.api.PlatformComponentVo;
import com.probox.common.entity.domain.platfom.vo.api.PlatformPageVo;
import com.probox.common.entity.domain.platfom.vo.api.PlatformTemplateView;

/**
 * 页面组件数据信息Service接口
 *
 *
 * @date 2021-06-10
 */
public interface IPlatformPageConfigDataService extends IService<PlatformPageConfigData> {


    /**
     * 查询页面组件数据信息
     *
     * @param dataUid 页面组件数据信息ID
     * @return 页面组件数据信息
     */
    public PlatformPageConfigData selectPlatformPageConfigDataById(Long dataUid);


    /**
     * 查询页面组件数据信息列表
     *
     * @param platformPageConfigData 页面组件数据信息
     * @return 页面组件数据信息集合
     */
    public List<PlatformPageConfigData> queryList(PlatformPageConfigData platformPageConfigData);


    /**
     * /**
     * 添加组件数据信息
     *
     * @param platformTemplateView 模板信息vo
     * @param voComponet           模板组件信息vo
     */
    public void insertPlatformPageConfigData(PlatformTemplateView platformTemplateView, PlatformComponentVo voComponet);

    /**
     * 修改组件数据信息
     *
     * @param platformTemplateView
     * @param voComponet
     */
    public void updatePlatformPageConfigData(PlatformTemplateView platformTemplateView, PlatformComponentVo voComponet);

    /**
     * 批量删除页面组件数据信息
     *
     * @param dataUids 需要删除的页面组件数据信息ID
     * @return 结果
     */
    public boolean deletePlatformPageConfigDataByIds(Long[] dataUids);

    /**
     * 复制组件信息数据
     *
     * @param view
     * @param componentUid
     * @param copyComponentUid
     */
    public void copyPlatformPageConfigData(PlatformTemplateView view, String componentUid, String copyComponentUid);


    /**
     *  获取组件数据信息
     * @param componentUid
     * @param limitsNumber
     * @return
     */
    public List<PlatformComponentDataVo> getDataVo(String componentUid, Integer limitsNumber, Long uid, UseTypeVo useTypeVo,String sourceComponentUid);


    /**
     * 页面获得数据
     * @param vo
     * @param uid
     * @return
     */
    public PlatformPageVo getDataVoForVO(PlatformPageVo vo, Long uid);
}
